#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
日志模块，基于loguru实现
提供统一的日志记录功能
"""

import os
import sys
import time
from pathlib import Path
from loguru import logger
from config import config

def setup_logger(log_dir="logs", level="INFO"):
    """
    设置日志配置
    
    Args:
        log_dir (str): 日志文件保存目录
        level (str): 日志级别，默认INFO
    """
    # 创建日志目录
    os.makedirs(log_dir, exist_ok=True)
    
    # 格式化日期为年月日
    date_str = time.strftime("%Y%m%d")
    
    # 配置日志格式
    fmt = (
        "<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | "
        "<level>{level: <8}</level> | "
        "<cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - "
        "<level>{message}</level>"
    )
    
    # 移除默认处理器
    logger.remove()
    
    # 添加控制台处理器
    logger.add(
        sys.stdout,
        format=fmt,
        level=level,
        enqueue=True,
    )
    
    # 添加文件处理器 - 按日期和大小分割
    logger.add(
        os.path.join(log_dir, f"log_{date_str}.log"),
        rotation="10 MB",  # 每10MB分割一个文件
        retention="30 days",  # 保留30天
        format=fmt,
        level=level,
        enqueue=True,
        encoding="utf-8",
    )
    
    return logger

print("日志系统初始化完成,日志级别:"+config['logging.level'])
# 初始化默认logger，后续会被配置系统重新设置
logger = setup_logger(level=config['logging.level'])
